#ifndef VIEWER_H
#define VIEWER_H

#include <QWidget>
#include <AIS_InteractiveContext.hxx>
#include <V3d_Viewer.hxx>
#include <V3d_View.hxx>
#include <OpenGl_GraphicDriver.hxx>
#include <Graphic3d_GraphicDriver.hxx>
#include <TCollection_ExtendedString.hxx>


class Viewer : public QWidget
{
    Q_OBJECT
public:
    explicit Viewer(const char *aName, QWidget *parent = 0);
    
protected:
    virtual void paintEvent(QPaintEvent *);
    virtual void resizeEvent(QResizeEvent *);
    virtual QPaintEngine *paintEngine() const;
signals:
    
public slots:
    
private:
    void init_context();

private:
    Handle(V3d_Viewer)                  m_myViewer;
    Handle(V3d_View)                    m_myView;
    Handle(AIS_InteractiveContext)      m_myContext;
    //Handle(OpenGl_GraphicDriver)        m_aGraphicDriver;
    Handle(Graphic3d_GraphicDriver)     m_aGraphicDriver;
    TCollection_ExtendedString          m_a3DName;
};

#endif // VIEWER_H
